package com.shyroke.service;

import java.util.List;

import com.shyroke.entity.Role;
import com.shyroke.entity.User;

public interface UserServiceI {

	/**
	 * 根据用户名和密码获取该用户
	 * @param username
	 * @param password
	 * @return
	 */
	User selectUserByUserNameAndPwd(String username, String password);

	/**
	 * 根据用户id获取该用户的所有角色
	 * @param userId
	 * @return
	 */
	List<Role> selectRolesByUserId(int userId);

	/**
	 * 根据用户id查找用户
	 * @param userId
	 * @return
	 */
	User selectByUserId(int userId);

	/**
	 * 检验邮箱是否被注册过
	 * @param email
	 * @return
	 */
	boolean isExitEmail(String email);

	/**
	 * 保存登录用户信息
	 * @param user
	 */
	void insert(User user);

	void update(User user);

	/**
	 * 密码是否正确
	 * @param id 用户id
	 * @param repassword 密码
	 * @return
	 */
	boolean isPwdCorret(Integer id, String repassword);

	/**
	 * 获取所有普通用户信息，不包括管理员信息,分页
	 * @param endIndex 
	 * @param beginIndex 
	 * @return
	 */
	List<User> selectAll(int beginIndex, int endIndex);

	/**
	 * 获取数据库中普通用户的数量
	 * @return
	 */
	int selectCountByUser();

	/**
	 * 查找用户，分页
	 * @param username 用户
	 * @param endIndex 
	 * @param beginIndex 
	 * @return
	 */
	List<User> selectByUserName(String username, int beginIndex, int endIndex);

	/**
	 * 检验用户名是否存在
	 * @param username 用户名
	 * @return true表示存在该用户名
	 */
	boolean isExitUserName(String username);

	/**
	 * 删除用户
	 * @param userId 用户id
	 */
	void deleteByUserId(Integer userId);

		/**
		 * 查找用户
		 * @param key 用户名
		 * @return
		 */
	List<User> selectByUserNameNoPage(String key);




}
